all: reconstructed.nes verify

# Standard build
header.o: header.s
	ca65 -g -o $@ header.s

prg.o: prg.s symbols.inc locals.inc prg.bin
	ca65 -g -o $@ prg.s

chr.o: chr.s chr.bin
	ca65 -g -o $@ chr.s

reconstructed.nes: header.o prg.o chr.o linker.cfg
	ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg.o chr.o

verify: reconstructed.nes rom.nes
	cmp reconstructed.nes rom.nes
	@echo "Byte-identical ROM verified."

# Regen pipeline (requires ../../_tools/)
regen:
	python3 ../../_tools/nesdis.py --prg prg.bin --base 0xC000 --project "Urban Champion (JU)" \
	    --out prg.s --locals locals.inc --no-symbols --auto-seed \
	    --extra-seed 0xCA00,0xCA91 \
	    --data 0xCB70:60
	python3 ../../_tools/pass2.py apply prg.s label_map.tsv
	python3 ../../_tools/pass2.py apply prg.s data_label_map.tsv
	python3 ../../_tools/apply_symbols.py . --write

clean:
	rm -f header.o prg.o chr.o reconstructed.nes reconstructed.map reconstructed.lbl reconstructed_prg.bin